iMouse键盘 替换文本
先从光标往前删掉 count 个字符,再插入 key——一次调用完成"退格若干次再输入"。
典型用途是纠错与联想替换:输错了几个字,不必先调删除再调插入,一条就够, 中间也不会出现"删完还没输入"的空档。
依赖手机上的 iMouse 键盘,不经过 USB 硬件
与 /key/* 那几条不同,/keyboard/* 是内核通过局域网直接把文本交给手机上的 iMouse 键盘。所以要求:
- 手机上已安装 iMouse 键盘(App Store),并在「设置 → 通用 → 键盘 → 添加新键盘」里添加、 打开「允许完全访问」
- 调用的那一刻,iMouse 键盘正处于前台激活状态——也就是光标在某个输入框里、 键盘已经弹出且当前键盘就是 iMouse 键盘
- 手机与内核所在的电脑在同一局域网
⚠️ 键盘一旦退到后台(比如按了主屏幕键),这几条会立刻返回 code=46 或 47。
这不是接口坏了,把光标点回输入框、切到 iMouse 键盘即可。
多设备与返回值
id 支持多个设备(逗号隔开);留空表示全部设备。
⚠️ 响应里只有一个 code,取的是第一台的结果——批量调用时,别拿它当"所有设备都成功了"的凭据。
⚠️ id 传了却匹配不到任何设备时返回 code=1(id不存在)。
count 的含义是"先删几个",不是"替换第几个"count 数的是字符,从光标位置往前数。
count=0或不传 → 不删,效果等同于/keyboard/insert- 输入框里的字不够删时,有几个删几个,不会报错
⚠️ 一个中文字算 1 个字符,不是按字节算。
调用说明
- 请求参数
| 参数 | 类型 | 说明 | 备注 |
|---|---|---|---|
| fun | 字符串 | /keyboard/input | 请求功能名 |
| id | 字符串 | 设备唯一ID | 多个设备用逗号隔开;留空表示全部设备 |
| key | 字符串 | 删完之后要插入的文本 | 必填。任意字符,含中文与 emoji |
| count | 整数 | 先往前删掉几个字符 | 不传按 0 处理(即只插入不删) |
- httpGet请求示例
curl --request GET \
--url 'http://192.168.9.9:9911/api/keyboard/input?id=5C:F7:E6:CE:65:22&key=world&count=5'
- httpPost json请求示例【websocket也可发送同样json请求】
curl --request POST \
--url http://192.168.9.9:9911/api \
--header 'Content-Type: application/json' \
--data '{
"fun": "/keyboard/input",
"data": {
"id": "5C:F7:E6:CE:65:22",
"key": "相机",
"count": 2
}
}'
上面这个例子:输入框里原本是 设置 he,调用后变成 设置 相机
(先删掉 he 两个字符,再插入 相机)。
响应结果
{
"data": {
"code": 0,
"id": "5C:F7:E6:CE:65:22",
"message": "成功"
},
"status": 200,
"message": "成功",
"msgid": 0,
"fun": "/keyboard/input"
}
- 响应data数据字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| code | 整数 | 见下表 |
| id | 字符串 | 请求里传的设备 id |
| message | 字符串 | code 对应的文字说明 |
- 错误码
| code | 含义 | 该怎么处置 |
|---|---|---|
| 0 | 成功 | —— |
| 1 | id不存在 | 检查设备 id;留空表示全部设备 |
| 44 | 密钥初始化失败 | 重启内核后重试 |
| 45 | 签名/序列化失败 | 参数里有无法序列化的内容 |
| 46 | 连接超时 | 确认 iMouse 键盘在前台、手机与电脑在同一局域网(见上方说明) |
| 47 | 连接被拒绝 / 不可达 | iMouse 键盘不在前台(键盘已收起,或切到了别的键盘) |
| 48 | 其他网络错误 | 检查手机与电脑是否在同一网段 |
| 49 | 请求体为空或字段缺失 | 必填参数没传,或传了空值 |
| 50 | 签名无效 / 时间戳过期 | 电脑与手机的系统时间相差过大 |
| 51 | 路径不存在 | 手机端 iMouse 键盘版本过旧,请到 App Store 更新 |
| 52 | 服务端错误 | 手机端 iMouse 键盘内部出错,重新弹出键盘后重试 |
| 53 | 其他HTTP错误 | —— |